home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / include / incl98.zoo / stdlib.h < prev    next >
C/C++ Source or Header  |  1994-02-22  |  4KB  |  137 lines

  1. /*
  2.  * stdlib.h
  3.  *    ansi draft sec 4.10
  4.  */
  5. #ifndef _STDLIB_H
  6. #define _STDLIB_H
  7.  
  8. #ifndef _COMPILER_H
  9. #include <compiler.h>
  10. #endif
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. #ifndef _SIZE_T
  17. #define _SIZE_T __SIZE_TYPEDEF__
  18. typedef _SIZE_T size_t;
  19. #endif
  20.  
  21. #ifndef _WCHAR_T
  22. #define _WCHAR_T __WCHAR_TYPEDEF__
  23. typedef _WCHAR_T wchar_t;
  24. #endif
  25.  
  26. #ifndef NULL
  27. #define NULL        __NULL
  28. #endif
  29.  
  30. #ifdef __MSHORT__
  31. #define    RAND_MAX    (0x7FFF)    /* maximum value from rand() */
  32. #else
  33. #define    RAND_MAX    (0x7FFFFFFFL)    /* maximum value from rand() */
  34. #endif
  35.  
  36. #define MB_CUR_MAX    1        /* max. length of multibyte character
  37.                        in current locale */
  38.  
  39. #ifndef EXIT_FAILURE
  40. #define EXIT_FAILURE    (1)
  41. #define EXIT_SUCCESS    (0)
  42. #endif
  43.  
  44. typedef struct {
  45.     int        quot;    /* quotient    */
  46.     int        rem;    /* remainder     */
  47. } div_t;
  48.  
  49. typedef struct {
  50.     long    quot;    /* quotient    */
  51.     long    rem;    /* remainder     */
  52. } ldiv_t;
  53.  
  54. __EXTERN double atof __PROTO((const char *s));
  55. __EXTERN int atoi __PROTO((const char *str));
  56. __EXTERN long atol __PROTO((const char *str));
  57. __EXTERN long int strtol __PROTO((const char *nptr, char **endptr, int base));
  58. __EXTERN unsigned long int strtoul __PROTO((const char *nptr, char **endptr, int base));
  59. __EXTERN double strtod __PROTO((const char *s, char **endptr)); /* sigh! */
  60.  
  61. __EXTERN void srand __PROTO((unsigned int seed));
  62. __EXTERN int rand __PROTO((void));
  63.  
  64. __EXTERN void *malloc __PROTO((size_t n));
  65. __EXTERN void free __PROTO((void *param));
  66. __EXTERN void *realloc __PROTO((void *_r, size_t n));
  67. __EXTERN void *calloc __PROTO((size_t n, size_t sz));
  68. #ifndef __STRICT_ANSI__
  69.  
  70. #  ifndef alloca
  71. #    ifndef __GNUC__
  72. #      ifndef __cplusplus
  73.           __EXTERN void *alloca __PROTO((size_t));
  74. #      else
  75.           __EXTERN void *alloca __PROTO((long unsigned int));
  76. #      endif /* __cplusplus */
  77. #    else
  78. #      define alloca(X) __builtin_alloca(X)
  79. #    endif /* __GNUC__ */
  80. #  endif /* alloca */
  81.  
  82. #  ifdef atarist
  83.      __EXTERN void _malloczero __PROTO((int yes));
  84.      __EXTERN void _mallocChunkSize __PROTO((size_t siz));
  85. #  endif
  86.  
  87. #endif /* __STRICT_ANSI__ */
  88.  
  89. __EXTERN __EXITING abort __PROTO((void)) __NORETURN;
  90. #if !(defined (__GNUG__) && __GNUG__ == 1)
  91.   /* bug in g++ 1.39.0 -- cant digest proto */
  92. __EXTERN int atexit __PROTO((void (*)(void)));
  93. #endif
  94. __EXTERN __EXITING exit __PROTO((int)) __NORETURN;
  95.  
  96. __EXTERN char *getenv __PROTO((const char *tag));
  97. __EXTERN int system __PROTO((const char *s));
  98.  
  99. __EXTERN void *bsearch __PROTO((const void *key, const void *base, size_t num, size_t size, int (*cmp )(const void *, const void *)));
  100. __EXTERN void qsort __PROTO((void *base, size_t total_elems, size_t size, int (*cmp )(const void *, const void *)));
  101.  
  102. __EXTERN int abs __PROTO((int x));
  103. __EXTERN long labs __PROTO((long x));
  104.  
  105. __EXTERN div_t div __PROTO((int num, int denom));
  106. __EXTERN ldiv_t ldiv __PROTO((long num, long denom));
  107.  
  108. __EXTERN int mblen __PROTO((const char *, size_t));
  109. __EXTERN size_t mbstowcs __PROTO((wchar_t *, const char *, size_t));
  110. __EXTERN int mbtowc __PROTO((wchar_t *, const char *, size_t));
  111. __EXTERN size_t wcstombs __PROTO((char *, const wchar_t *, size_t));
  112. __EXTERN int wctomb __PROTO((char *, wchar_t));
  113.  
  114. __EXTERN wchar_t *wcscat __PROTO((wchar_t *, const wchar_t *));
  115. __EXTERN int wcscmp __PROTO((const wchar_t *, const wchar_t *));
  116. __EXTERN wchar_t *wcscpy __PROTO((wchar_t *, const wchar_t *));
  117. __EXTERN size_t wcslen __PROTO((const wchar_t *));
  118. __EXTERN wchar_t *wcsncat __PROTO((wchar_t *, const wchar_t *, size_t));
  119. __EXTERN int wcsncmp __PROTO((const wchar_t *, const wchar_t *, size_t));
  120. __EXTERN wchar_t *wcsncpy __PROTO((wchar_t *, const wchar_t *, size_t));
  121.  
  122. #if defined(__LATTICE__) && !defined(_NO_INLINE)
  123.  
  124. int    __builtin_abs(int);
  125. long    __builtin_labs(long);
  126.  
  127. #define abs(i)    __builtin_abs(i);
  128. #define labs(l)    __builtin_labs(l);
  129.  
  130. #endif
  131.  
  132. #ifdef __cplusplus
  133. }
  134. #endif
  135.  
  136. #endif /* _STDLIB_H */
  137.